package khleuven.mondzorg.domain;

import java.util.ArrayList;

public class Modules {
	
	private ArrayList<Module> allModules;
	private static Modules uniqueInstance;

	private Modules() {
		allModules = new ArrayList<Module>();
	}
	
	public static Modules getInstance(){
		if(uniqueInstance == null){
			synchronized (Modules.class) {
				if(uniqueInstance == null){
					uniqueInstance = new Modules();
				}
			}
		}
		return uniqueInstance;
	}
	
	public Module createModule(String string) {
		Module module = getModuleFrom(string);
		if(module == null){
			module = new Module(string);
			add(module);
		}
		return module;
	}
	
	public ArrayList<String> getAllModulesAsStringList(){
		ArrayList<String> modulesAsString = new ArrayList<String>();
		for(Module m: getAllModules()){
			modulesAsString.add(m.getName());
		}
		return modulesAsString;
	}
	
	private void add(Module module){
		allModules.add(module);
	}
	
	private ArrayList<Module> getAllModules(){
		return allModules;
	}
	
	private Module getModuleFrom(String name){
		Module module = null;
		for(Module m: getAllModules()){
			if(m.getName().equals(name)){
				module = m;
			}
		}
		return module;
	}
}